package org.example.chatmemory;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;

import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;

/**
 * AI服务接口，用于处理聊天对话功能
 * 该接口定义了一个独立的聊天助手服务，支持基于ID的对话管理
 */
@AiService(wiringMode = EXPLICIT,
        chatModel = "qwenChatModel",
        chatMemoryProvider = "chatMemoryProvider")
public interface SeparateAssistant {

    /**
     * 处理用户聊天消息并返回助手回复
     *
     * @param memoryId 用于标识对话上下文的内存ID，确保不同对话之间的状态隔离
     * @param userMessage 用户发送的聊天消息内容
     * @return 返回AI助手针对用户消息的回复字符串
     */

    //@UserMessage("你是我的聊天问答助手，请回答我的问题，{{message}}")
    @SystemMessage("你是我的聊天问答助手，请回答我的问题")
    String chat (@MemoryId int memoryId, @UserMessage String userMessage);
}

